= `
${ element2.name }
` $("#distorted_country_city_list_DCFGV4RFT").append(html); if($('.childParent'+element.id).length == $('.childParent'+element.id+'.reflect').length){ $('.all_cityelement' + element.id).addClass('reflect') }else{ $('.all_cityelement' + element.id).removeClass('reflect') } } }) } }); refreshSuperArea() } function refresh_shop_recent_record_filter(){ if (filter_shop_recent_record_counter>5){ return null; } filter_shop_recent_record_counter = filter_shop_recent_record_counter + 1; if(xhr_refresh_shop_recent_record_filter!=="" && xhr_refresh_shop_recent_record_filter!==undefined){ xhr_refresh_shop_recent_record_filter.abort() } const lang = '1'; const get_value = `?type=shop&lang=${ lang }&rs_limit=15` xhr_refresh_shop_recent_record_filter = $.ajax({ type:"GET", url:"/api_v1/public/web/1.0/1.1/recently"+get_value, dataType:"JSON", beforeSend:function(){ }, success:function(res){ if(res.status===200){ shop_recent_record_data = res.result if(shop_recent_record_data!==undefined && shop_recent_record_data.length>0){ $("#shop_recently_record").show(); $("#clear_button_of_shop_recent_list").show(); load_shop_recent_record_data() }else{ $("#shop_recently_record").hide(); $("#clear_button_of_shop_recent_list").hide(); refresh_shop_recent_record_filter() } }else{ $("#shop_recently_record").hide(); $("#clear_button_of_shop_recent_list").hide(); refresh_shop_recent_record_filter() } }, complete:function(){ }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#shop_recently_record").hide(); $("#clear_button_of_shop_recent_list").hide(); refresh_shop_recent_record_filter() } }) } function refresh_service_recent_record_filter(){ if (filter_service_recent_record_counter>5){ return null; } filter_service_recent_record_counter = filter_service_recent_record_counter + 1; if(xhr_refresh_service_recent_record_filter!=="" && xhr_refresh_service_recent_record_filter!==undefined){ xhr_refresh_service_recent_record_filter.abort() } const lang = '0'; const get_value = `?type=service&lang=${ lang }&rs_liomit=15` xhr_refresh_service_recent_record_filter = $.ajax({ type:"GET", url:"/api_v1/public/web/1.0/1.1/recently"+get_value, dataType:"JSON", beforeSend:function(){ }, success:function(res){ if(res.status===200){ service_recent_record_data = res.result if(service_recent_record_data!==undefined && service_recent_record_data.length>0){ $("#service_recently_record").show(); $("#clear_button_of_service_recent_list").show(); load_service_recent_record_data() }else{ $("#service_recently_record").hide(); $("#clear_button_of_service_recent_list").hide(); refresh_service_recent_record_filter() } }else{ $("#service_recently_record").hide(); $("#clear_button_of_service_recent_list").hide(); refresh_service_recent_record_filter() } }, complete:function(){ }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#service_recently_record").hide(); $("#clear_button_of_service_recent_list").hide(); refresh_service_recent_record_filter() } }) } function load_shop_recent_record_data() { $("#search_record_shop_list").html(""); shop_recent_record_data.forEach((element)=>{ var html = `
  • ${ element.placeaddress }`; if(element.placeaddress && element.keyword){ html += ` - ` } html +=`${ element.keyword }
  • ` $("#search_record_shop_list").append(html); }) } function load_service_recent_record_data() { $("#search_record_service_list").html(""); service_recent_record_data.forEach((element)=>{ var html = `
  • ${ element.placeaddress }`; if(element.placeaddress && element.keyword){ html += ` - ` } html +=`${ element.keyword }
  • ` $("#search_record_service_list").append(html); }) } function select_distance(ele, key) { $('#citysel *').removeClass('reflect').removeClass('hovered') groupselect('cities', '', ele) groupselect('tance', key, ele) } function select_city(ele, key) { $('.cityselement').hide(); $('.parent'+key).show() } function all_city_fun(ele, key) { console.log('all_city_item_rf3dr') search_url['cities'] = key delete (search_url['tance']) $('.nearby').removeClass('reflect') $('#tancebtn').removeClass('hovered') //$('.areachild').removeClass('reflect') //$('.tancelement').removeClass('hovered') //ele.toggleClass("reflect") if($('.all_cityelement' + key).hasClass("reflect")){ $('.all_cityelement' + key).removeClass("reflect") $('.childParent' + key).removeClass('reflect') }else{ $('.all_cityelement' + key).addClass("reflect") $('.childParent' + key).addClass('reflect') } //$('#super' + key).toggleClass("reflect") $('#citycat').addClass('hovered') //$("#cfmbtn").addClass("se_afbtn"); refreshSuperArea() refresh_Input_Box("cc3r") } function one_city_fun(ele, parentId, childId) { console.log('one_city_item_rf6dr') search_url['cities'] = childId console.log("changed to page 1"); search_url["page"] = 1 groupselect('tance', '', this) $('.nearby').removeClass('reflect') $('#tancebtn').removeClass('hovered') ele.toggleClass("reflect") if($('.childParent'+parentId).length == $('.childParent'+parentId+'.reflect').length){ $('.all_cityelement' + parentId).addClass('reflect') }else{ $('.all_cityelement' + parentId).removeClass('reflect') } console.log(ele) //$('.tancelement').removeClass('hovered') //$('#super' + parentId).addClass('hovered') $('#citycat').addClass('hovered') refreshSuperArea() refresh_Input_Box("6yf4") } function refreshSuperArea(){ if($('.parent1.reflect').length===0){ $('#super1').removeClass('hovered') }else{ $('#super1').addClass('hovered') } if($('.parent2.reflect').length===0){ $('#super2').removeClass('hovered') }else{ $('#super2').addClass('hovered') } if($('.parent3.reflect').length===0){ $('#super3').removeClass('hovered') }else{ $('#super3').addClass('hovered') } if($('.parent4.reflect').length===0){ $('#super4').removeClass('hovered') }else{ $('#super4').addClass('hovered') } if($('.parent88.reflect').length===0){ $('#super88').removeClass('hovered') }else{ $('#super88').addClass('hovered') } refresh_Input_Box("refreshSuperArea"); } function refresh_Input_Box(track_code){ console.log(`Track Code:${ track_code }`) var isSelected = false; //Area - nearby var temp_store = Array() $('.nearby.reflect').each(function(ele){ var val = $('.nearby.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) //$("#nearby").val(temp_store.join(",")) if(temp_store.length>0){search_url['tance'] = temp_store.join(",");} else{delete(search_url['tance']);} //Area - cities var temp_store = Array() $('.cityselement.reflect').each(function(ele){ if(!$('.cityselement.reflect')[ele].classList.contains('nearby')){ var val = $('.cityselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } } }) $("#cities").val(temp_store.join(",")) if(temp_store.length>0){search_url['cities'] = temp_store.join(",");} else{delete(search_url['cities']);} //Price - prices var temp_store = Array() $('.priceselement.reflect').each(function(ele){ var val = $('.priceselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#prices").val(temp_store.join(",")) if(temp_store.length>0){search_url['prices'] = temp_store.join(",");} else{delete(search_url['prices']);} //Sort - sorts var temp_store = Array() $('.sortselement.reflect').each(function(ele){ var val = $('.sortselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#sorts").val(temp_store.join(",")) if(temp_store.length>0){search_url['sorts'] = temp_store.join(",");} else{delete(search_url['sorts']);} //Offer - shoptypes var temp_store = Array() $('.shoptypeselement.reflect').each(function(ele){ var val = $('.shoptypeselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#shoptypes").val(temp_store.join(",")) if(temp_store.length>0){search_url['shoptypes'] = temp_store.join(",");} else{delete(search_url['shoptypes']);} if(false!=true){ if($('.shoptypeselement.reflect').length>0) { search_url["onlybooking"] = 1 $("#online_booking_btn").css("background-color","#FAEFEF") $("#online_booking_btn").find("span").addClass("reign") }else{ delete(search_url["onlybooking"]) $("#online_booking_btn").css("background-color","#F3F3F4") $("#online_booking_btn").find("span").removeClass("reign") } } //Payment Method - bookpays var temp_store = Array() $('.bookpayselement.reflect').each(function(ele){ var val = $('.bookpayselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#bookpays").val(temp_store.join(",")) if(temp_store.length>0){search_url['bookpays'] = temp_store.join(",");} else{delete(search_url['bookpays']);} //Service Location var temp_store = Array() $('.service_locationelement.reflect').each(function(ele){ var val = $('.service_locationelement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#service_location").val(temp_store.join(",")) if(temp_store.length>0){search_url['service_location'] = temp_store.join(",");} else{delete(search_url['service_location']);} //Merchant Type - merchantType var temp_store = Array() $('.merchantTypeelement.reflect').each(function(ele){ var val = $('.merchantTypeelement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#merchantType").val(temp_store.join(",")) if(temp_store.length>0){search_url['merchantType'] = temp_store.join(",");} else{delete(search_url['merchantType']);} //Time Button $('.selTime_btn.reflect').each(function(ele){ isSelected = true }) if(isSelected){ //$("#cfmbtn").addClass("se_afbtn"); }else{ //$("#cfmbtn").removeClass("se_afbtn"); } //Time if($('.selTime_btn.CselTime.reflect').length===0){ delete(search_url["start"]); delete(search_url["end"]); } //Area if($('.cityselement.selectionBox.reflect').length===0){ $("#citycat").removeClass('hovered') }else{ $("#citycat").addClass('hovered') } //Price if($('.priceselement.selectionBox.reflect').length===0){ $("#pricecat").removeClass('hovered') }else{ $("#pricecat").addClass('hovered') } //Sort if($('.sortselement.selectionBox.reflect').length===0){ $("#sortcat").removeClass('hovered') }else{ $("#sortcat").addClass('hovered') } //Offer if($('.shoptypeselement.selectionBox.reflect').length===0){ $("#shoptypecat").removeClass('hovered') }else{ $("#shoptypecat").addClass('hovered') } //Payment Method if($('.bookpayselement.selectionBox.reflect').length===0){ $("#bookpaycat").removeClass('hovered') }else{ $("#bookpaycat").addClass('hovered') } //Merchant Type if($('.merchantTypeelement.selectionBox.reflect').length===0){ $("#merchantType").removeClass('hovered') }else{ $("#merchantType").addClass('hovered') } if($('.service_locationelement.selectionBox.reflect').length===0){ $("#service_locationcat").removeClass('hovered') }else{ $("#service_locationcat").addClass('hovered') } refresh_search_button_result_number("ee4d") } var xhr_get_result_number = ""; function refresh_search_button_result_number(track){ console.log(`Count Number: ${ track }`); if(xhr_get_result_number!=="" && xhr_get_result_number!==undefined){ xhr_get_result_number.abort() } if( (search_url['bookpays'] == "" || search_url['bookpays'] == null) && (search_url['category'] == "" || search_url['category'] == null) && (search_url['city'] == "" || search_url['city'] == null) && (search_url['cities'] == "" || search_url['cities'] == null) && (search_url['prices'] == "" || search_url['prices'] == null) && (search_url['shoptypes'] == "" || search_url['shoptypes'] == null) && (search_url['sorts'] == "" || search_url['sorts'] == null) && (search_url['tance'] == "" || search_url['tance'] == null) && (search_url['service_location'] == "" || search_url['service_location'] == null) && (search_url['start'] == "" || search_url['start'] == null || search_url['start'] == undefined) && (search_url['end'] == "" || search_url['end'] == null || search_url['end'] == undefined) ){ $(".filter_search_btn").html(`Search`) }else{ xhr_get_result_number = $.ajax({ type: 'GET', url: '/api_v1/public/web/1.0/1.4/place/search_result_number', data: search_url, dataType: 'json', beforeSend: function(){ $(".filter_search_btn").html(`
    `) }, success: function(data) { if(data.result.actual>0){ $(".filter_search_btn").html(`${ data.result.display } results`) }else{ $(".filter_search_btn").html(`0 results`) } }, error: function(){ $(".filter_search_btn").html(`0 results`) } }); } } function selectrange(date){ delete(search_url["range"]); if(search_url["date"]==String(date)){ delete(search_url["date"]); }else{ search_url["date"]=String(date); delete(search_url["start"]); delete(search_url["end"]); } search_url["page"]=1; is_zero=1; roadshow(); } function restartsearch(obj){ console.log("954e9616-f6f6-4ed7-842f-076b52e98b3d"); startsearch($(obj)); } function startsearch(obj){ search_url[obj.attr('type_type')]=obj.attr('type_value'); if('category'==obj.attr('type_type')){ // delete(search_url['keywords']); if(obj.attr('type_value').length===0){ search_url['placeaddress'] = ""; search_url['categoryname'] = ""; search_url['categoryName'] = ""; search_url['categorysName'] = ""; search_url['categories'] = ""; search_url['category'] = ""; search_url['cities'] = ""; search_url['city'] = ""; } }else if('categories'==obj.attr('type_type')){ // delete(search_url['keywords']); if(obj.attr('type_value').length===0){ search_url['placeaddress'] = ""; search_url['categoryname'] = ""; search_url['categoryName'] = ""; search_url['categorysName'] = ""; search_url['categories'] = ""; search_url['category'] = ""; search_url['cities'] = ""; search_url['city'] = ""; }else{ search_url['categorysName'] = ""; search_url['districtsName'] = ""; } }else if('onlybooking'==obj.attr('type_type')){ if(obj.attr('type_value').length===0){ delete(search_url['date']) } } else if('cities'==obj.attr('type_type')){ delete(search_url['placeaddress']); delete(search_url['tance']); } else if('tance'==obj.attr('type_type')){ delete(search_url['placeaddress']); delete(search_url['cities']); } var show_str = obj.html(); $("*[type_type="+obj.attr('type_type')+"]").removeClass('reign'); if(obj.attr('type_value') != '') { obj.addClass('reign'); } $("#"+obj.attr('type_type')+" span").html(show_str); search_url["page"]=1; is_zero=1; if (true) { const currentUrl = window.location.href; const mapParamIndex = currentUrl.indexOf('&map=1'); if (mapParamIndex !== -1) { console.log('The &map=1 parameter exists in the URL.'); // Code to execute when it exists } else { console.log('The &map=1 parameter does not exist in the URL.'); // Code to execute when it doesn't exist delete(search_url['map']) } } roadshow(); } function showsel(target){ console.log("showsel()") $(".filchild").hide(); $("#"+target).show(); } function reflect(ele){ $(ele).toggleClass("reflect"); offset = parseInt($(ele).attr("tran")); now = new Date(); time = Math.floor(now.getTime()/1000); minutes = now.getMinutes(); diff = 15*Math.ceil(minutes/15)-minutes; switch (offset){ case 0: //4 hours delete(search_url["start"]); delete(search_url["end"]); break; case 1: //1 hour case 2: //2 hour case 3: //3 hour search_url["start"]=time+diff*60; search_url["end"]=time+offset*3600+diff*60; search_url["onlybooking"]=1; break; default: alert("Invalid selection"); } $("#timecat").addClass("hovered"); //$("#cfmbtn").addClass("se_afbtn"); if($('.selTime_btn.CselTime.reflect').length==0){ $('#timecat').removeClass("hovered") } refresh_Input_Box("ft3d") } function swipe1(id,dir){ element = document.getElementById(id); console.log(element); console.log(dir); dx = dir*372; if (element==null) return; element.scrollBy(dx,0); z = $("#"+id+"holder .arrow_l"); $("#"+id+"holder .scrol_arrow_l")[0].hidden = !(element.scrollLeft); $("#"+id+"holder .scrol_arrow_r")[0].hidden = !(element.scrollWidth!=element.scrollLeft+element.clientWidth); } function fakesubmit(){ if (typeof(search_url["city"])!="undefined" && search_url["city"]!=''){ delete(search_url["placeaddress"]); } roadshow(); } function resetFilter(){ history.pushState({}, "Search Page", "/en/index.php?act=search2"); $("#citycat").removeClass('hovered') $("#pricecat").removeClass('hovered') $("#sortcat").removeClass('hovered') $("#shoptypecat").removeClass('hovered') $("#bookpaycat").removeClass('hovered') $("#service_locationcat").removeClass('hovered') $("#merchantType").removeClass('hovered') $('.tancelement').removeClass('hovered') $('.cityselement').removeClass('reflect') $('.priceselement').removeClass('reflect') $('.sortselement').removeClass('reflect') $('.shoptypeselement').removeClass('reflect') $('.bookpayselement').removeClass('reflect') $('.selTime_btn').removeClass('reflect') $('.service_locationelement').removeClass('reflect') search_url["category"] = null; search_url["bookpays"] = null; search_url["city"] = null; search_url["cities"] = null; search_url["merchantType"] = null; search_url["prices"] = null; search_url["shoptypes"] = null; search_url["sorts"] = null; search_url["start"] = null; search_url["end"] = null; search_url["service_location"] = null; target.state.value.min='35' let slider2 = 5795; target.state.value.max=slider2 > 96? 96 : slider2; target.forceUpdate() $(".filter_search_btn").html(`Search`) } function rbooking(){ if (search_url==null) return; //error if (search_url["act"]=="search"){ search_url["act"]="search2"; } else{ search_url["act"]="search"; if (search_url["range"]!=null) delete(search_url["range"]); } roadshow(); } function groupselect(group,value,ele){ var allowLoad; if(value === ""){ switch (group) { case 'bookpays': //document.querySelector('#unspecified_bookpay_45c8fbf1').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'shoptypes': //document.querySelector('#unspecified_shopType_546c').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'merchantType': //document.querySelector('#unspecified_shopType_9369dff').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'sorts': $("."+group+"element").removeClass("reflect"); break case 'prices': //document.querySelector('#unspecified_shopType_f4f11').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'service_location': $("."+group+"element").removeClass("reflect"); break } $(ele).addClass("reflect"); allowLoad = false console.log("3se2") }else{ allowLoad = true switch (group) { case 'bookpays': allowLoad = false //document.querySelector('#unspecified_bookpay_45c8fbf1').classList.remove('reflect') //$("."+group+"element").removeClass("reflect"); if (ele.classList.contains("reflect")){ ele.classList.remove("reflect"); }else{ if($("."+group+"element").hasClass("reflect")){ $("."+group+"element").removeClass("reflect"); } ele.classList.add("reflect"); } break case 'shoptypes': //document.querySelector('#unspecified_shopType_546c').classList.remove('reflect') break case 'sorts': document.querySelector('#reset').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'merchantType': //document.querySelector("#unspecified_shopType_9369dff").classList.remove('reflect') break case 'prices': //document.querySelector('#unspecified_shopType_f4f11').classList.remove('reflect') break case 'service_location': //$("."+group+"element").removeClass("reflect"); allowLoad = false if (ele.classList.contains("reflect")){ ele.classList.remove("reflect"); }else{ if($("."+group+"element").hasClass("reflect")){ $("."+group+"element").removeClass("reflect"); } ele.classList.add("reflect"); } break } console.log("fd5r") } if (allowLoad){ if (ele.classList.contains("reflect")){ ele.classList.remove("reflect"); }else{ ele.classList.add("reflect"); } } if (value!=""){ if (group=="shoptypes"){ search_url["act"]=="search2"; } search_url[group]=value; $("#"+group+"cat").addClass("hovered"); }else{ if (group=="shoptypes"){ search_url["act"]==""; } delete(search_url[group]); $("#"+group+"cat").removeClass("hovered"); } refresh_Input_Box("2ws4") } h=0; /**/ "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var FilterTimeRangerApp = function (_React) { _inherits(FilterTimeRangerApp, _React); function FilterTimeRangerApp(props) { _classCallCheck(this, FilterTimeRangerApp); console.log(props); var _this = _possibleConstructorReturn(this, _React.call(this, props)); _this.state = { value: { min: 35, max: 5795 > 96? 96 : 5795} }; return _this; } FilterTimeRangerApp.prototype.render = function render() { var _this2 = this; return React.createElement( "form", { className: "form" }, React.createElement(InputRange, { maxValue: 96, minValue: 35, formatLabel: function formatLabel(value) { h = Math.floor(value/4); m = 15*(value%4); if (h<10){ h = "0"+h; } if (m<10){ m = "0"+m; } return h+":"+m; }, value: this.state.value, onChange: function onChange(value) { return _this2.setState({ value: value }); }, onChangeComplete: function onChangeComplete(value) { startstamp = 1784736000; range = 0; if (typeof(search_url["range"]!="undefined")){ if (search_url["range"]>1) range = (search_url["range"]-1) * 86400; } search_url["start"] = startstamp + value.min/4 *3600 + range; search_url["end"] = startstamp + value.max/4 *3600 + range; $("#cfmbtn").addClass("se_afbtn"); refresh_search_button_result_number("5rt6"); return console.log(value); } }) ); }; return FilterTimeRangerApp; }(React.Component); if (!!document.getElementById("timeSelectionBarApp")){ target = ReactDOM.render( React.createElement(FilterTimeRangerApp, null), document.getElementById("timeSelectionBarApp") ); target.id = "slider1"; } /**/ // sourceURL=pen.js

    Can't find the place you want?

    Try searching in another category!

    Add shop
    feature graphic desktop
    feature graphic desktop

    Hong Kong Pet Recommendation in 2026

    Want to search for the best price in 2026 Hong Kong Pet? Bookfun provides the most immediate Hong Kong Pet reservation service. After becoming a member, you can enjoy various discounts and rebates in Hong Kong Pet.

    Hong Kong with high-quality Pet stores are naturally indispensable, you want Pet Insurance, Home Pet Grooming, Pet Immigration, Pet Sitting, Pet Beauty, Pet Shop, Pet Training Course, Pet Hospice Service, Pet Clinic, we have everything you want, there is always a category to satisfy your demand.

    Some Pet stores have even launched trial offers and special offers, and even up to 25% rebate or 50% discount, allowing you to enjoy the most famous price! Support local Pet stores, there is always one near you, BookFun will help you make an appointment instantly!